From 73f43ceca7cd392ebc9569e135907765149acae8 Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Mon, 29 Sep 2008 11:00:29 +0100 Subject: [PATCH] xc_save: use correct size when unmapping live p2m. Otherwise we unmap a larger region than was mapped when saving 32 bit guest from 64 bit tools, leading to badness. The equivalent change was made to the restore code in 18329:ca7dd77d5365 Signed-off-by: Ian Campbell --- tools/libxc/xc_domain_save.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/libxc/xc_domain_save.c b/tools/libxc/xc_domain_save.c index c1ced27d98..a910414988 100644 --- a/tools/libxc/xc_domain_save.c +++ b/tools/libxc/xc_domain_save.c @@ -727,7 +727,7 @@ static xen_pfn_t *map_and_save_p2m_table(int xc_handle, out: if ( !success && p2m ) - munmap(p2m, ROUNDUP(p2m_size * sizeof(xen_pfn_t), PAGE_SHIFT)); + munmap(p2m, P2M_FLL_ENTRIES * PAGE_SIZE); if ( live_p2m_frame_list_list ) munmap(live_p2m_frame_list_list, PAGE_SIZE); @@ -1608,7 +1608,7 @@ int xc_domain_save(int xc_handle, int io_fd, uint32_t dom, uint32_t max_iters, munmap(live_shinfo, PAGE_SIZE); if ( live_p2m ) - munmap(live_p2m, ROUNDUP(p2m_size * sizeof(xen_pfn_t), PAGE_SHIFT)); + munmap(live_p2m, P2M_FLL_ENTRIES * PAGE_SIZE); if ( live_m2p ) munmap(live_m2p, M2P_SIZE(max_mfn)); -- 2.30.2